var vm = new Vue({
    el:"#app",
    data:{
        isShowRoleForm:false,
        roleName:""
    },
    methods:{
        /**
         * 初始化bootstrapTable
         */
        initTable:function(){
            var _this = this;
            $('#tbSysRole').bootstrapTable($.extend(bootstrapTableOption,{
                url: g_comm.manager_url+'/sysRole/list',           //请求后台的URL（*）
                toolbar: '#toolbar',                          //工具按钮用哪个容器
                queryParams: _this.queryParams,               //传递参数（*）
                uniqueId: "id",                     //每一行的唯一标识，一般为主键列
                columns: [{
                    checkbox: true
                }, {
                    field: 'roleName',
                    title: '角色名称'
                }, {
                    field: 'roleSign',
                    title: '角色标识'
                }, {
                    field: 'remark',
                    title: '备注'
                }, {
                    field: 'createUser',
                    title: '创建人'
                }, {
                    field: 'createTime',
                    title: '创建时间',
                    formatter:function(value,row,index){
                        if(value!=null){
                            return new Date(value).toString("yyyy-MM-dd HH:mm:ss");
                        }else{
                            return "";
                        }
                    }
                }, {
                    field: 'updateUser',
                    title: '更新人'
                }, {
                    field: 'updateTime',
                    title: '修改时间',
                    formatter:function(value,row,index){
                        return new Date(value).toString("yyyy-MM-dd HH:mm:ss");
                    }
                }
                ]
            }));
        },
        del:function(){
            //获取选中的行
            var selectRows = $('#tbSysRole').bootstrapTable('getSelections');
            if(selectRows.length==0){
                layer.alert('请选择要删除的数据!',{
                    title: '提示框',
                    icon:0
                });
                return;
            }
            var ids = "";
            $(selectRows).each(function (index, obj) {
                ids+=obj.id+",";
            });
            ids=ids.substring(0,ids.length-1);
            parent.layer.confirm("你确定是要删除吗！", {btn: ['确定','取消']},
                function(){//确定事件
                    //关闭confirm Dialog
                    parent.layer.closeAll('dialog');
                    $.ajax({
                        url: g_comm.manager_url+"/sysRole/delete",
                        data: {ids:ids},
                        success: function(r){
                            if(r.code == 0){
                                layer.msg('删除成功！', {icon: 1});
                                //重新刷新数据
                                $('#tbSysRole').bootstrapTable('refresh');
                            }else{
                                layer.alert(r.msg,{
                                    title: '提示框',
                                    icon:0
                                });
                            }
                        }
                    });
                });
        },

        /**
         * 查询参数
         * @param params
         */
        queryParams:function (params) {
            return {   //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
                limit: params.limit,   //页面大小
                offset: params.offset,  //页码
                roleName:this.roleName
            };
        },

        /**
         * 点击treeNode节点之前
         */
        zTreeBeforeClick:function(treeId, treeNode){
            //获取选中的菜单ID
            var id=treeNode.id;
            $('#tbSysRole').bootstrapTable("refresh",{query: {id: id}});
        },

        /**
         * 新增角色
         */
        add:function(){
            $("#roleform")[0].reset();
            this.loadMenuTree(false,0);
            showLayer("新增角色","roleCreateOrUpdate",800,700);
        },

        /**
         * 加载菜单树
         */
        loadMenuTree:function(check,roleId){
            var ztreeObject;
            var setting = {
                data: {
                    simpleData: {
                        enable: true,
                        idKey: "id",
                        pIdKey: "pId",
                        rootPId: 0
                    },
                    key: {
                        name:'name',
                        title:'name'
                    }
                },
                check:{
                    enable:true,
                    nocheckInherit:true
                }
            };
            var url = g_comm.manager_url+'/sysResource/treeList';
            if(check)
                url=g_comm.manager_url+'/sysResource/checkTreeList?&roleId='+roleId;
            $.ajax({
                url:url,
                success:function(result){
                    if(result.code == 0){
                        var treedata = eval(result.data);
                        ztreeObject = $.fn.zTree.init($("#ztreedemo"), setting, treedata);
                        //展开所有节点
                        ztreeObject.expandAll(true);
                    }else{
                        layer.alert(result.msg,{
                            title: '提示框',
                            icon:0
                        });
                        return false;
                    }
                }
            });
        },
        /**
         * 保存
         */
        save:function(){
            if(!this.validate()){
                return false;
            }
            var params = '';
            var saveUrl = g_comm.manager_url+'/sysRole/add';
            var id = $("#id").val();
            if(id!=""){
                //编辑菜单状态
                saveUrl = g_comm.manager_url+'/sysRole/update';
            }
            var ztreeObject = $.fn.zTree.getZTreeObj("ztreedemo");
            //获取选中的节点
            var nodes = ztreeObject.getCheckedNodes(true);
            var resourceIds = '';//选中的资源ID
            if (nodes != null && nodes.length > 0) {
                for (var i = 0; i < nodes.length; i++) {
                    if(i==0){
                        resourceIds +=nodes[i].id;
                    }else{
                        resourceIds += ','+nodes[i].id;
                    }
                }
            }
            params += "resourceIds=" + resourceIds;
            $.ajax({
                url:saveUrl,
                data:$("#roleform").serialize()+"&"+params,
                success:function(result){
                    if(result.code == 0){
                        layer.closeAll(); //疯狂模式，关闭所有层
                        layer.msg('操作成功！', {icon: 1});
                        $("#id").val("");//清空隐藏域中的id，避免由于有id导致当成更新操作
                        //重新刷新数据
                        $('#tbSysRole').bootstrapTable('refresh');
                    }else{
                        layer.alert(result.msg,{
                            title: '提示框',
                            icon:0
                        });
                        return false;
                    }
                }
            });
        },
        /**
         * 修改角色
         */
        edit:function(){
            //获取选中的行
            var selectRows = $('#tbSysRole').bootstrapTable('getSelections');
            if(selectRows.length==0){
                layer.alert('请选择要编辑的数据!',{
                    title: '提示框',
                    icon:0
                });
                return;
            }
            if(selectRows.length>1){
                layer.alert('一次只能编辑的一条数据!',{
                    title: '提示框',
                    icon:0
                });
                return;
            }
            var roleData = selectRows[0];
            //填充数据
            loadData(roleData);
            this.loadMenuTree(true,roleData.id);
            showLayer("编辑角色","roleCreateOrUpdate",800,700);
        },

        validate: function () {
            var roleName = $("#roleName").val();
            if(roleName==""){
                layer.alert('角色名称不能为空!',{
                    title: '提示框',
                    icon:0
                });
                return false;
            }
            var roleSign = $("#roleSign").val();
            if(roleSign==""){
                layer.alert('角色标识不能为空!',{
                    title: '提示框',
                    icon:0
                });
                return false;
            }
            return true;
        },
        /**
         * 搜索
         */
        search:function () {
            $('#tbSysRole').bootstrapTable('refreshOptions',{pageNumber:1});
        }
    },
    mounted:function () {
        this.initTable();
    }
});